#ifndef WINDOWEVENTUTILS_H
#define WINDOWEVENTUTILS_H

#include "Framework/Definitions.h"
#include "Framework/Prerequisites.h"

#if TYRO_DEFINITION == TYRO_DEFINITION_WIN32
#include <windows.h>
#endif

namespace tyro
{
	namespace OS
	{

		class WindowEventListener
		{
		public:
			virtual void WindowClosed(Graphics::IRenderWindow* window) { (void)window; }
		};

		class WindowEventUtils
		{
		public:


			static void MessageHandler();

			static void AddWindowEventListener(Graphics::IRenderWindow* window, WindowEventListener* listener );

#if TYRO_DEFINITION == TYRO_DEFINITION_WIN32
			static LRESULT CALLBACK _WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
#endif

			
			static WindowEventListeners windowListeners;

		protected:
		private:
		};
	}
}
#endif
